"""
类方法和 实例方法 不同的是, 他需要由 内置装饰器@classmethod装饰

并且接收的参数由 self 变成 cls

所以它只能调用类的方法/属性, 对象的属性/方法它无法调用
"""
class Car():
    brand = "BMW"

    @classmethod
    def classInfo(cls):
        print(f"车子都是{cls.brand}厂子生产的")

    def selfInfo(self):
        # Car.classInfo()  这么调用也可以
        self.classInfo() # 方法内可以调用类中定义的方法
        print(f"车子的颜色是{self.color}")


car1 = Car()
car2 = Car()

car1.color = "blue"
car2.color = "red"

# 车子都是BWM厂子生产的
# 车子的颜色是blue
# car1.selfInfo()

# 车子都是BWM厂子生产的
# 车子的颜色是red
# car2.selfInfo()
#
Car.brand = "Benz"
#
# # 车子都是Benz厂子生产的
# 车子的颜色是blue
# car1.selfInfo()
#
# # 车子都是Benz厂子生产的
# # 车子的颜色是red
# car2.selfInfo()


car1.brand = "Quattro"
#
# # 车子都是Benz厂子生产的
# # 车子的颜色是blue
car1.selfInfo()
#
# # 车子都是Benz厂子生产的
# # 车子的颜色是red
car2.selfInfo()